package com.home766.dao;

import com.home766.dto.SchemeProductDto;
import com.home766.entity.SchemeProduct;
import net.biz.Page;
import net.biz.Pageable;
import net.biz.dao.BaseDao;
import net.biz.entity.Brand;
import net.biz.entity.Specification;

import java.util.Date;
import java.util.List;

public interface SchemeProductDao extends BaseDao<SchemeProduct, Long> {
	
	/**
	 * 检查名称是否存在
	 * @param name
	 * @return
	 */
	boolean checkExists(String name);
	
	/**
	 * 根据方案类型查询对应方案产品数据集合
	 * @param type
	 * @return
	 */
	List<SchemeProduct> findSchemeProductByType(Long type, String sn, String name);
	List<SchemeProduct> findSchemeProductByCategory(Long category, String sn, String name);
	
	Page<SchemeProductDto> findPage(Pageable pageable, String sn, String name, String createPerson, Date beginDate, Date endDate, Long type, Long brand);

	SchemeProduct findBySn(String sn);
	
	/**
	 * 根据分类查询主材产品集合
	 * @param categoryId
	 * @return
	 */
	List<SchemeProduct> findByCategory(Long categoryId, Boolean bool);
	
	/**
	 * 验证规格是否选为方案主材规格
	 * @param specification
	 * @return
	 */
	boolean checkInSchemeProduct(Specification specification);

	boolean checkBrandInSchemeProduct(Brand brand);
	/***
	 * 获取智能暖气下的壁挂炉品牌（主机品牌）
	 * @return
	 */
	List<SchemeProductDto> getSchemeProductDtoList();
	/***
	 * 获取智能暖气下除了壁挂炉之外的品牌（辅材品牌）
	 * @return
	 */
	List<SchemeProductDto> getSchemeProductDtoListOfAuxiliary();
	
	/***
	 * 获取智能空调下的除提升泵和控制器品牌（主机品牌）
	 * @return
	 */
	List<SchemeProductDto> getSchemeProductDtoListByConditioner();
}
